/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package nexus.adec;

import control.*;
import java.util.ArrayList;
import javax.faces.context.FacesContext;
import javax.faces.el.VariableResolver;
import javax.faces.model.SelectItem;
import nexus.adec.GestorEspacioDB;

/**
 *
 * @author juampi
 */
public class GestorFuncion {
    private String nombreRol;
    private String codigoRol;
    private String codigoUsuario;
    private String codigoFuncion;
    private String nombreFuncion;
    private String[] gruposSelecionados;
    private ArrayList<String> cadenas;
    private ArrayList<SelectItem> grupos;
    private boolean mostrar;

    public GestorFuncion(String codigoFuncion, String nombreFuncion,String codRol,String codUsuario) {
        this.codigoFuncion = codigoFuncion;
        this.nombreFuncion = nombreFuncion;
        this.gruposSelecionados =new String[1];
        gruposSelecionados[0]="1A";
        //gruposSelecionados[0]="como";
        //gruposSelecionados[0]="estan";
        codigoRol = codRol;
        codigoUsuario = codUsuario;
        nombreRol = GestorEspacioDB.getInstance().obtenerRol(codigoRol).getNombreRol();
    }
    /**
     * @return the codigoFuncion
     */
    public String getCodigoFuncion() {
        return codigoFuncion;
    }

    /**
     * @param codigoFuncion the codigoFuncion to set
     */
    public void setCodigoFuncion(String codigoFuncion) {
        this.codigoFuncion = codigoFuncion;
    }

    /**
     * @return the nombreFuncion
     */
    public String getNombreFuncion() {
        return nombreFuncion;
    }

    /**
     * @param nombreFuncion the nombreFuncion to set
     */
    public void setNombreFuncion(String nombreFuncion) {
        this.nombreFuncion = nombreFuncion;
    }

    /**
     * @return the gruposSelecionados
     */
    public String[] getGruposSelecionados() {
       // JOptionPane.showMessageDialog(null, "pide arreglo de grups");
        return gruposSelecionados;
    }

    /**
     * @param gruposSelecionados the gruposSelecionados to set
     */
    public void setGruposSelecionados(String[] gruposSelecionados) {
        String value="";
        for (String string : gruposSelecionados) {
            value+=string;
        }
        //JOptionPane.showMessageDialog(null, "entro al set datos arreglo"+value);
        this.gruposSelecionados = gruposSelecionados;
    }
    public String mostrar() {
        String value="";
        for (String string : gruposSelecionados) {
            value+=string;
        }
        String res = codigoFuncion+"-"+nombreFuncion+"-"+value;
        return res;
    }

    /**
     * @return the cadenas
     */
    public ArrayList<String> getCadenas() {
        cadenas = new ArrayList<String>();
        cadenas.add("1A");
        //cadenas.add("estan ");
        //cadenas.add("bien");
        //String p = "prueba";
        return cadenas;
    }

    /**
     * @param cadenas the cadenas to set
     */
    public void setCadenas(ArrayList<String> cadenas) {
        this.cadenas = cadenas;
    }

    /**
     * @return the mostrar
     */
    public boolean isMostrar() {
        return mostrar;
    }

    /**
     * @param mostrar the mostrar to set
     */
    public void setMostrar(boolean mostrar) {
        this.mostrar = mostrar;
    }

    /**
     * @return the grupos
     */
    public ArrayList<SelectItem> getGrupos() {
        grupos = new ArrayList<SelectItem>();
        ArrayList<String> gruposConFuncionesAsignadas;
        ArrayList<String> todosGrupos;
        //JOptionPane.showMessageDialog(null,"dato get grupo funcin grupos "+getCodigoEspacio()+"-"+codigoUsuario+"-"+codigoRol );
        if(codigoRol.equalsIgnoreCase("Estudiante")) {
            //todosGrupos = GestorEspacioDB.getInstance().listarGruposUsuario(getCodigoEspacio(), codigoUsuario, codigoRol);
            //todosGrupos = DBMS.getInstance().listarGrupos(getUserBean().getCodigoCurso());
  //          gruposConFuncionesAsignadas = GestorEspacioDB.getInstance().listarGruposFuncion(getCodigoEspacio(), nombreRol, codigoFuncion);
            //JOptionPane.showMessageDialog(null,"En FuncionGroup los grupos con funcions son "+gruposConFuncionesAsignadas);
        } else {
            //todosGrupos = GestorEspacioDB.getInstance().listarGruposUsuario(getCodigoEspacio(), codigoUsuario, codigoRol);
//            gruposConFuncionesAsignadas =GestorEspacioDB.getInstance().listarGruposFuncion(getCodigoEspacio(),codigoRol, codigoFuncion, getCodigoUsuario());
            //JOptionPane.showMessageDialog(null,"size "+todosGrupos.size()+" --"+"2 size "+gruposConFuciones.size());
            //JOptionPane.showMessageDialog(null,"En FuncionGroup entro en el else "+gruposConFuncionesAsignadas);
            //JOptionPane.showMessageDialog(null, "los grupos con funciones son  "+gruposConFuciones);
        }
        /*for (String grupoUsuario : todosGrupos) {
/*        for (String grupoUsuario : todosGrupos) {
            SelectItem item = new SelectItem(grupoUsuario,grupoUsuario);
            grupos.add(item);
        }*/
/*        gruposSelecionados = new String[gruposConFuncionesAsignadas.size()];
        for (int i = 0;i<gruposConFuncionesAsignadas.size();i++) {
            gruposSelecionados[i] = gruposConFuncionesAsignadas.get(i);

        }*/
        return grupos;
    }

    /**
     * @param grupos the grupos to set
     */
    public void setGrupos(ArrayList<SelectItem> grupos) {
        this.grupos = grupos;
    }
    public String getCodigoEspacio() {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        VariableResolver vr = facesContext.getApplication().getVariableResolver();

        UserBean user = (UserBean)vr.resolveVariable(facesContext, "userBean");
        return user.getCodigoCurso();
    }

    /**
     * @return the codigoRol
     */
    public String getCodigoRol() {
        return codigoRol;
    }

    /**
     * @param codigoRol the codigoRol to set
     */
    public void setCodigoRol(String codigoRol) {
        this.codigoRol = codigoRol;
    }

    /**
     * @return the codigoUsuario
     */
    public String getCodigoUsuario() {
        return codigoUsuario;
    }

    /**
     * @param codigoUsuario the codigoUsuario to set
     */
    public void setCodigoUsuario(String codigoUsuario) {
        this.codigoUsuario = codigoUsuario;
    }
    public UserBean getUserBean() {
        FacesContext context = FacesContext.getCurrentInstance();
        VariableResolver vr = context.getApplication().getVariableResolver();
        UserBean ub = (UserBean)vr.resolveVariable(context, "userBean");
        return ub;
    }
}